package net.cyndeline.GUI.actors.messages

import net.cyndeline.GUI.rendering.{GraphicsContainer, RenderTarget}
import net.cyndeline.gameMap.Grid
import net.cyndeline.scalarlib.entityComponent.miranda.{Entity, EntityComponentManager}

/**
 * Sent to the render manager to begin rendering a map using the listeners that subscribe to the scheduled render jobs.
 * @param entityManager Used to access map entities to find out how and if to render them.
 * @param subscribers A list of all objects that should receive the finished render jobs based on the map.
 * @param graphics Stores graphical objects for every entity (if they've been assigned any).
 * @param map The map that should be rendered.
 * @param cameraEntity Id of the entity that has the camera component.
 * @param canvasWidth The width in pixels of the area that the map is being drawn upon.
 * @param canvasHeight The height in pixels of the area that the map is being drawn upon.
 */
case class RenderMap(entityManager: EntityComponentManager,
                     subscribers: List[RenderTarget],
                     graphics: GraphicsContainer,
                     map: Grid,
                     cameraEntity: Entity,
                     canvasWidth: Int,
                     canvasHeight: Int) {

}
